package thread;

import java.util.concurrent.Semaphore;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: 25397
 * Date: 2022-04-08
 * Time: 20:13
 */
public class Demo30 {
    public static void main(String[] args) throws InterruptedException {
        //初始化的值表示可用资源有4个
        Semaphore semaphore=new Semaphore(4);

        //申请资源，p操作
        semaphore.acquire(2);//表示1次申请2个资源
        System.out.println("申请成功");

        semaphore.acquire(2);
        System.out.println("申请成功");

        semaphore.acquire();//如果不加参数就是1次申请1个资源
        System.out.println("申请成功");
        //因为前面已经把4个资源全申请完了
        //所以这里不会打印申请成功，这里会陷入阻塞

        //释放资源，V操作
        semaphore.release(2);//表示1次释放2个资源
    }
}
